home *** CD-ROM | disk | FTP | other *** search
/ Revista do CD-ROM 101 / CD-ROM 101.iso / compl / maya5ple / Install_MayaPLE5_English.exe / Maya / Data1.cab / dynCreateFluidLayout.mel < prev    next >
Encoding:
Text File  |  2003-07-17  |  28.2 KB  |  981 lines

  1. // Copyright (C) 1997-2002 Alias|Wavefront,
  2. // a division of Silicon Graphics Limited.
  3. //
  4. // The information in this file is provided for the exclusive use of the
  5. // licensees of Alias|Wavefront.  Such users have the right to use, modify,
  6. // and incorporate this code into other products for purposes authorized
  7. // by the Alias|Wavefront license agreement, without fee.
  8. //
  9. // ALIAS|WAVEFRONT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
  10. // INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
  11. // EVENT SHALL ALIAS|WAVEFRONT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  12. // CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  13. // DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  14. // TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  15. // PERFORMANCE OF THIS SOFTWARE.
  16. //
  17. source dynCreateLayout.mel;
  18. //
  19. //  Alias|Wavefront Script File
  20. //  MODIFY THIS AT YOUR OWN RISK
  21. //
  22. //  Creation Date:  April, 1997
  23. //  Author:         Carol Levy
  24. //
  25. //  Description:
  26. //      This script contains code to create the layouts for the
  27. //        dynamics option boxes (for Dynamics menus).
  28. //
  29. //  Input Arguments to dynCreateLayout():
  30. //        string $parent  -- the layout parent
  31. //        int $theCmd -- the command for which the layout is being created
  32. //        int $isCreate -- create or add mode
  33. //
  34. //  Return Value:
  35. //      None.
  36. //
  37.  
  38. global proc createExtendFluidLayout( string $parent )
  39. {
  40.     checkBoxGrp -label "Rebuild Initial State" -label1 ""
  41.         -ann "Prevents invalidation of Initial State cache when changing fluid resolution."
  42.         extendFluidRebuildIC;
  43.     separator;
  44.     intSliderGrp -label "Extend -X By:"
  45.         -ann "Extend Negative X"
  46.         -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
  47.         extendFluidMinX;
  48.     intSliderGrp -label "Extend   X By:"
  49.         -ann "Extend X."
  50.         -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
  51.         extendFluidMaxX;
  52.     intSliderGrp -label "Extend -Y By:"
  53.         -ann "Extend negative Y."
  54.         -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
  55.         extendFluidMinY;
  56.     intSliderGrp -label "Extend   Y By:"
  57.         -ann "Extend Y."
  58.         -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
  59.         extendFluidMaxY;
  60.     separator;
  61.     text -align left -l "     3D only:";
  62.     intSliderGrp -label "Extend -Z By:"
  63.         -ann "Extend negative Z."
  64.         -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
  65.         extendFluidMinZ;
  66.     intSliderGrp -label "Extend   Z By:"
  67.         -ann "Extend Z."
  68.         -min -5 -max 10 -fmn -50 -fmx 100 -el "Voxels"
  69.         extendFluidMaxZ;
  70. }
  71.  
  72. global proc createResampleFluidLayout( string $parent )
  73. {
  74.     checkBoxGrp -label "Rebuild Initial State" -label1 ""
  75.         -ann "Prevents invalidation of Initial State cache when changing fluid resolution."
  76.         resampleFluidRebuildIC;
  77.     separator;
  78.     intSliderGrp -label "X Resolution"
  79.         -ann "X Resolution"
  80.         -min 3 -max 100 -fmx 1000 
  81.         resampleFluidX;
  82.     intSliderGrp -label "Y Resolution"
  83.         -ann "Y Resolution"
  84.         -min 3 -max 100 -fmx 1000 
  85.         resampleFluidY;
  86.     separator;
  87.     text -align left -l "     3D only:";
  88.     intSliderGrp -label "Z Resolution"
  89.         -ann "Z resolution"
  90.         -min 3 -max 100 -fmx 1000 
  91.         resampleFluidZ;
  92. }
  93.  
  94. global proc createCreate3DFluidLayout( string $parent )
  95. {
  96.     global float $dynMaxFloatField;
  97.  
  98.     intSliderGrp -label "X Resolution"
  99.         -ann "X Resolution"
  100.         -min 3 -max 100 -fmx 1000 
  101.         create3DFluidXRes;
  102.  
  103.     intSliderGrp -label "Y Resolution"
  104.         -ann "Y Resolution"
  105.         -min 3 -max 100 -fmx 1000 
  106.         create3DFluidYRes;
  107.  
  108.     intSliderGrp -label "Z Resolution"
  109.         -ann "Z Resolution"
  110.         -min 3 -max 100 -fmx 1000 
  111.         create3DFluidZRes;
  112.  
  113.     separator;
  114.     floatSliderGrp -l "X Size"
  115.         -ann "X size"
  116.         -field true 
  117.         -min 0.00001 -max 100
  118.         -fmn 0.00001 -fmx $dynMaxFloatField
  119.         -pre 3 -step 10
  120.         create3DFluidXSize;
  121.  
  122.     floatSliderGrp -l "Y Size"
  123.         -ann "Y size"
  124.         -field true 
  125.         -min 0.00001 -max 100
  126.         -fmn 0.00001 -fmx $dynMaxFloatField
  127.         -pre 3 -step 10
  128.         create3DFluidYSize;
  129.  
  130.     floatSliderGrp -l "Z Size"
  131.         -ann "Z size"
  132.         -field true 
  133.         -min 0.00001 -max 100
  134.         -fmn 0.00001 -fmx $dynMaxFloatField
  135.         -pre 3 -step 10
  136.         create3DFluidZSize;
  137.  
  138. }
  139.  
  140. global proc createCreate2DFluidLayout( string $parent )
  141. {
  142.     global float $dynMaxFloatField;
  143.  
  144.     intSliderGrp -label "X Resolution"
  145.         -ann "X Resolution"
  146.         -min 3 -max 100 -fmx 1000 
  147.         create2DFluidXRes;
  148.  
  149.     intSliderGrp -label "Y Resolution"
  150.         -ann "Y Resolution"
  151.         -min 3 -max 100 -fmx 1000 
  152.         create2DFluidYRes;
  153.  
  154.     separator;
  155.     floatSliderGrp -l "X Size"
  156.         -ann "X size"
  157.         -field true 
  158.         -min 0.00001 -max 100
  159.         -fmn 0.00001 -fmx $dynMaxFloatField
  160.         -pre 3 -step 10
  161.         create2DFluidXSize;
  162.  
  163.     floatSliderGrp -l "Y Size"
  164.         -ann "Y size"
  165.         -field true 
  166.         -min 0.00001 -max 100
  167.         -fmn 0.00001 -fmx $dynMaxFloatField
  168.         -pre 3 -step 10
  169.         create2DFluidYSize;
  170.  
  171.     floatSliderGrp -l "Z Size"
  172.         -ann "Z size"
  173.         -field true 
  174.         -min 0.00001 -max 100
  175.         -fmn 0.00001 -fmx $dynMaxFloatField
  176.         -pre 3 -step 10
  177.         create2DFluidZSize;
  178.  
  179.  
  180. }
  181.  
  182. global proc createMakeCollideFluidLayout( string $parent )
  183. {
  184.     intSliderGrp -label "Tessellation Factor"
  185.         -ann "Tessellation Factor"
  186.         -min 2 -max 1000 
  187.         tessellationFactor;
  188. }
  189.  
  190. global proc flEmitterMaxDistCB()
  191. {
  192.  
  193.     // If the user sets max distance less than min distance,
  194.     // reset min distance to be the same as max distance.
  195.     //
  196.     float $minDist = `floatSliderGrp -q -v  flEmitterMinDistance`;
  197.     float $maxDist = `floatSliderGrp -q -v  flEmitterMaxDistance`;
  198.  
  199.     if ($maxDist < $minDist)
  200.     {
  201.         floatSliderGrp -e -v $maxDist flEmitterMinDistance;
  202.     }
  203. }
  204.  
  205. global proc flEmitterMinDistCB()
  206. {
  207.     // If the user sets min distance greater than max distance,
  208.     // reset max distance to be the same as min distance.
  209.     //
  210.     float $minDist = `floatSliderGrp -q -v  flEmitterMinDistance`;
  211.     float $maxDist = `floatSliderGrp -q -v  flEmitterMaxDistance`;
  212.  
  213.     if ($minDist > $maxDist)
  214.     {
  215.         floatSliderGrp -e -v $minDist flEmitterMaxDistance;
  216.     }
  217. }
  218.  
  219. global proc dynFluidEmitterCycleOptionChoice(string $parent)
  220. {
  221.     setParent $parent;
  222.     int     $choice = `optionMenuGrp -q -sl flEmitterCycleOM`;
  223.  
  224.     if ($choice == 1)  // no cycling
  225.     {
  226.         intSliderGrp -e -enable false flEmitterCycleInterval;
  227.     }
  228.     else
  229.     {
  230.         intSliderGrp -e -enable true flEmitterCycleInterval;
  231.     }
  232. }
  233.  
  234. global proc setDimmingForVolumeFluidEmitterAttributes( string $parent )
  235. {
  236.     // This generic proc is called by all "add emitter"
  237.     // option boxes.  It dims controls depending on what the
  238.     // volume-shape option menu is set to.  If those
  239.     // controls don't exist (in the emit from object case,
  240.     // for example) then just do nothing.
  241.     //
  242.     if( !`optionMenuGrp -q -exists flEmitterVolumeShapeOM` ) {
  243.         return;
  244.     }
  245.  
  246.     setParent $parent;
  247.  
  248.     string     $type = `optionMenuGrp -q -v flEmitterTypeOM`;
  249.     
  250.     if( $type != "Volume" )
  251.     {
  252.         // Non-volume type. Disable all volume controls.
  253.         //
  254.         optionMenuGrp -e -enable false flEmitterVolumeShapeOM;
  255.         floatSliderGrp  -e -enable false flEmitterVolumeOffsetX;
  256.         floatSliderGrp  -e -enable false flEmitterVolumeOffsetY;
  257.         floatSliderGrp  -e -enable false flEmitterVolumeOffsetZ;
  258.         floatSliderGrp  -e -enable false flEmitterVolumeSweep;
  259.         floatSliderGrp  -e -enable false flEmitterTorusSectionRadius;
  260.  
  261.         text -e -enable true flEmitterVolumeEnablePrompt;
  262.     }
  263.     else
  264.     {    
  265.         // Volume type.
  266.         // Set all volume controls to defaults, first
  267.         //
  268.         optionMenuGrp -e -enable true flEmitterVolumeShapeOM;
  269.         floatSliderGrp  -e -enable true flEmitterVolumeOffsetX;
  270.         floatSliderGrp  -e -enable true flEmitterVolumeOffsetY;
  271.         floatSliderGrp  -e -enable true flEmitterVolumeOffsetZ;
  272.         floatSliderGrp  -e -enable true flEmitterVolumeSweep;
  273.         floatSliderGrp  -e -enable false flEmitterTorusSectionRadius;
  274.         text -e -enable false flEmitterVolumeEnablePrompt;
  275.  
  276.         int     $volShape = `optionMenuGrp -q -sl flEmitterVolumeShapeOM`;
  277.  
  278.         // Now disable selected ones as necessary
  279.         //
  280.         if ($volShape == 1)  // cube
  281.         {
  282.             floatSliderGrp  -e -enable false flEmitterVolumeSweep;
  283.         }
  284.         else
  285.         if ($volShape == 5)  // torus
  286.         {
  287.             floatSliderGrp  -e -enable true flEmitterTorusSectionRadius;
  288.         }
  289.     }
  290. }
  291.  
  292. global proc dynFluidEmitterOptionChoice(string $parent)
  293. {
  294.     setParent $parent;
  295.  
  296.     string     $choice = `optionMenuGrp -q -v flEmitterTypeOM`;
  297.  
  298.     // Omni Point
  299.     //
  300.     if ($choice == "Omni")
  301.     {
  302.        floatSliderGrp -e -enable true flEmitterMinDistance;
  303.        floatSliderGrp -e -enable true flEmitterMaxDistance;
  304.     }
  305.     // Surface
  306.     //
  307.     else if ($choice == "Surface")
  308.     {
  309.        floatSliderGrp -e -enable true flEmitterMinDistance;
  310.        floatSliderGrp -e -enable true flEmitterMaxDistance;
  311.     }
  312.     // Curve
  313.     //
  314.     else if ($choice == "Curve")
  315.     {
  316.        floatSliderGrp -e -enable true flEmitterMinDistance;
  317.        floatSliderGrp -e -enable true flEmitterMaxDistance;
  318.     }
  319.     // Volume
  320.     //
  321.     else if ($choice == "Volume")
  322.     {
  323.        floatSliderGrp -e -enable false flEmitterMinDistance;
  324.        floatSliderGrp -e -enable false flEmitterMaxDistance;
  325.     }
  326.  
  327.     setDimmingForVolumeFluidEmitterAttributes( $parent );
  328. }
  329.  
  330. global proc createFluidEmitterLayout( string $parent )
  331. {
  332.     global float $dynMaxFloatField;
  333.     global float $dynMinFloatField;
  334.  
  335.     setParent $parent;
  336.     
  337.     // Emitter Name Widget
  338.     //
  339.     textFieldGrp -l "Emitter Name"
  340.         -annotation "Name for the new emitter"
  341.         flEmitterName;
  342.  
  343.     checkBoxGrp -l "Parent to Container" -label1 ""
  344.         -annotation "Parent emitter to container, or place at directly at center of container"
  345.         flEmitterParenting;
  346.  
  347.     // Basic Emitter Attributes Layout
  348.     //
  349.     frameLayout -l "Basic Emitter Attributes"
  350.         -bv true -lv true -cll true -cl false -mh 4
  351.         flEmitterBasicFL;
  352.     columnLayout flEmitterBasicCL;
  353.  
  354.     // Emitter Types Option Menu
  355.     // 
  356.     optionMenuGrp -l "Emitter Type"
  357.         -cc ("dynFluidEmitterOptionChoice " + $parent)
  358.         -annotation "Select the emitter type: either omni-directional or volume"
  359.         flEmitterTypeOM;
  360.     menuItem -l "Omni" flEmitterOmniPoint;
  361.     menuItem -l "Volume" flEmitterVolume;
  362.  
  363.     floatSliderGrp -l "Density Rate (/Voxel/Sec)"
  364.         -ann "Density emission per voxel per second"
  365.         -field true 
  366.         -min 0 -max 500
  367.         -fmn 0 -fmx $dynMaxFloatField
  368.         -pre 3 -step 10
  369.         flEmitterDensityRate;
  370.  
  371.     floatSliderGrp -l "Heat Rate (/Voxel/Sec)"
  372.         -ann "Heat emission per voxel per second"
  373.         -field true 
  374.         -min 0 -max 500
  375.         -fmn 0 -fmx $dynMaxFloatField
  376.         -pre 3 -step 10
  377.         flEmitterHeatRate;
  378.  
  379.     floatSliderGrp -l "Fuel Rate (/Voxel/Sec)"
  380.         -ann "Fuel emission per voxel per second"
  381.         -field true 
  382.         -min 0 -max 500
  383.         -fmn 0 -fmx $dynMaxFloatField
  384.         -pre 3 -step 10
  385.         flEmitterFuelRate;
  386.  
  387.     floatSliderGrp -l "Fluid Dropoff"
  388.         -ann "Fluid dropoff within volume"
  389.         -field true 
  390.         -min 0 -max 10
  391.         -fmn 0 -fmx $dynMaxFloatField
  392.         -pre 3 -step .1
  393.         flEmitterFluidDropoff;
  394.  
  395.     optionMenuGrp -l "Cycle Emission"
  396.         -ann "Restart random stream for this emitter each frame or after some number of particles"
  397.         -cc ("dynFluidEmitterCycleOptionChoice " + $parent)
  398.        flEmitterCycleOM;
  399.     menuItem -l "None (timeRandom off)" flEmitterCycleNone;
  400.     menuItem -l "Frame (timeRandom on)" flEmitterCycleFrame;
  401.     // menuItem -l "By Particle Count" flEmitterCycleCount;
  402.  
  403.     intSliderGrp -l "Cycle Interval"
  404.         -ann "Number of frames/particles between restarts of random stream"
  405.         -field true 
  406.         -min 1 -max 100
  407.         -fmx $dynMaxFloatField
  408.         //-pre 3 -step 0.5
  409.         flEmitterCycleInterval;
  410.  
  411.     setParent ..; 
  412.     setParent ..; 
  413.  
  414.  
  415.     // Direction Layout
  416.     //
  417.     frameLayout -l "Distance Attributes"
  418.         -bv true -lv true -cll true -cl true -mh 4
  419.         flEmitterDirectionFL;
  420.     columnLayout flEmitterDirectionCL;
  421.  
  422.     floatSliderGrp -l "Max Distance"
  423.         -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
  424.         -field true 
  425.         -min 0 -max 10
  426.         -fmn 0 -fmx $dynMaxFloatField
  427.         -pre 3 -step 0.5
  428.         -cc flEmitterMaxDistCB
  429.         flEmitterMaxDistance;
  430.  
  431.     floatSliderGrp -l "Min Distance"
  432.         -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
  433.         -field true 
  434.         -min 0 -max 10
  435.         -fmn 0 -fmx $dynMaxFloatField
  436.         -pre 3 -step 0.5
  437.         -cc flEmitterMinDistCB
  438.         flEmitterMinDistance;
  439.  
  440.     setParent ..;
  441.     setParent ..;
  442.  
  443.     // Volume Emitter Attributes Layout
  444.     //
  445.     int $collapse = 0;
  446.  
  447.     frameLayout -l "Volume Emitter Attributes"
  448.         -bv true -lv true -cll true -cl $collapse -mh 4
  449.         flEmitterVolumeFL;
  450.     columnLayout flEmitterVolumeCL;
  451.  
  452.     text -align left -l "Set emitter type to Volume to enable" flEmitterVolumeEnablePrompt;
  453.  
  454.     optionMenuGrp -l "Volume Shape"
  455.         -ann "Determines where particles are created (for volume type emitter, only)"
  456.         -cc ("setDimmingForVolumeFluidEmitterAttributes " + $parent)
  457.         flEmitterVolumeShapeOM;
  458.     menuItem -l "Cube" flEmitterCube;
  459.     menuItem -l "Sphere" flEmitterSphere;
  460.     menuItem -l "Cylinder" flEmitterCylinder;
  461.     menuItem -l "Cone" flEmitterCone;
  462.     menuItem -l "Torus" flEmitterTorus;
  463.  
  464.     floatSliderGrp -label "Volume Offset X"
  465.         -ann "Move volume away from actual emitter location"
  466.         -field true 
  467.         -min -10 -max 10
  468.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  469.         -pre 3 -step 0.5
  470.         flEmitterVolumeOffsetX;
  471.  
  472.     floatSliderGrp -label "Volume Offset Y"
  473.         -ann "Move volume away from actual emitter location"
  474.         -field true 
  475.         -min -10 -max 10
  476.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  477.         -pre 3 -step 0.5
  478.         flEmitterVolumeOffsetY;
  479.  
  480.     floatSliderGrp -label "Volume Offset Z"
  481.         -ann "Move volume away from actual emitter location"
  482.         -field true 
  483.         -min -10 -max 10
  484.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  485.         -pre 3 -step 0.5
  486.         flEmitterVolumeOffsetZ;
  487.  
  488.     floatSliderGrp -label "Volume Sweep"
  489.         -ann "Change extent of volume, as in modelling"
  490.         -field true 
  491.         -min 0 -max 360
  492.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  493.         -pre 3 -step 3.6
  494.         flEmitterVolumeSweep;
  495.  
  496.     floatSliderGrp -label "Section Radius"
  497.         -ann "Change size of torus volume, as in modelling"
  498.         -field true 
  499.         -min 0 -max 1.0
  500.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  501.         -pre 3 -step 0.1
  502.         flEmitterTorusSectionRadius;
  503.  
  504.     setParent ..; 
  505.     setParent ..; 
  506. }
  507.  
  508. global proc createFluidEmitFromObjectLayout( string $parent )
  509. {
  510.     global float $dynMaxFloatField;
  511.     global float $dynMinFloatField;
  512.  
  513.     setParent $parent;
  514.     
  515.     // Emitter Name Widget
  516.     //
  517.     textFieldGrp -l "Emitter Name"
  518.         -annotation "Name for the new emitter"
  519.         flEmitterName;
  520.  
  521.     // Basic Emitter Attributes Layout
  522.     //
  523.     frameLayout -l "Basic Emitter Attributes"
  524.         -bv true -lv true -cll true -cl false -mh 4
  525.         flEmitterBasicFL;
  526.     columnLayout flEmitterBasicCL;
  527.  
  528.     // Emitter Types Option Menu
  529.     // 
  530.     optionMenuGrp -l "Emitter Type"
  531.         -cc ("dynFluidEmitterOptionChoice " + $parent)
  532.         -annotation "Select the emitter type: either omni-directional, surface, or curve"
  533.         flEmitterTypeOM;
  534.     menuItem -l "Omni" flEmitterOmniPoint;
  535.     menuItem -l "Surface" flEmitterSurface;
  536.     menuItem -l "Curve" flEmitterCurve;
  537.  
  538.     floatSliderGrp -l "Density Rate (/Voxel/Sec)"
  539.         -ann "Density emission per voxel per second"
  540.         -field true 
  541.         -min 0 -max 500
  542.         -fmn 0 -fmx $dynMaxFloatField
  543.         -pre 3 -step 10
  544.         flEmitterDensityRate;
  545.  
  546.     floatSliderGrp -l "Heat Rate (/Voxel/Sec)"
  547.         -ann "Heat emission per voxel per second"
  548.         -field true 
  549.         -min 0 -max 500
  550.         -fmn 0 -fmx $dynMaxFloatField
  551.         -pre 3 -step 10
  552.         flEmitterHeatRate;
  553.  
  554.     floatSliderGrp -l "Fuel Rate (/Voxel/Sec)"
  555.         -ann "Fuel emission per voxel per second"
  556.         -field true 
  557.         -min 0 -max 500
  558.         -fmn 0 -fmx $dynMaxFloatField
  559.         -pre 3 -step 10
  560.         flEmitterFuelRate;
  561.  
  562.     floatSliderGrp -l "Fluid Dropoff"
  563.         -ann "Fluid dropoff within volume"
  564.         -field true 
  565.         -min 0 -max 10
  566.         -fmn 0 -fmx $dynMaxFloatField
  567.         -pre 3 -step .1
  568.         flEmitterFluidDropoff;
  569.  
  570.     optionMenuGrp -l "Cycle Emission"
  571.         -ann "Restart random stream for this emitter each frame or after some number of particles"
  572.         -cc ("dynFluidEmitterCycleOptionChoice " + $parent)
  573.        flEmitterCycleOM;
  574.     menuItem -l "None (timeRandom off)" flEmitterCycleNone;
  575.     menuItem -l "Frame (timeRandom on)" flEmitterCycleFrame;
  576.     // menuItem -l "By Particle Count" flEmitterCycleCount;
  577.  
  578.     intSliderGrp -l "Cycle Interval"
  579.         -ann "Number of frames/particles between restarts of random stream"
  580.         -field true 
  581.         -min 1 -max 100
  582.         -fmx $dynMaxFloatField
  583.         //-pre 3 -step 0.5
  584.         flEmitterCycleInterval;
  585.  
  586.     setParent ..; 
  587.     setParent ..; 
  588.  
  589.  
  590.     // Direction Layout
  591.     //
  592.     frameLayout -l "Distance Attributes"
  593.         -bv true -lv true -cll true -cl true -mh 4
  594.         flEmitterDirectionFL;
  595.     columnLayout flEmitterDirectionCL;
  596.  
  597.     floatSliderGrp -l "Max Distance"
  598.         -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
  599.         -field true 
  600.         -min 0 -max 10
  601.         -fmn 0 -fmx $dynMaxFloatField
  602.         -pre 3 -step 0.5
  603.         -cc flEmitterMaxDistCB
  604.         flEmitterMaxDistance;
  605.  
  606.     floatSliderGrp -l "Min Distance"
  607.         -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
  608.         -field true 
  609.         -min 0 -max 10
  610.         -fmn 0 -fmx $dynMaxFloatField
  611.         -pre 3 -step 0.5
  612.         -cc flEmitterMinDistCB
  613.         flEmitterMinDistance;
  614.  
  615.     setParent ..;
  616.     setParent ..;
  617.  
  618. }
  619.  
  620. global proc create3DFluidAndEmitterLayout( string $parent )
  621. {
  622.     global float $dynMaxFloatField;
  623.     global float $dynMinFloatField;
  624.  
  625.     setParent $parent;
  626.     
  627.     // Emitter Name Widget
  628.     //
  629.     textFieldGrp -l "Emitter Name"
  630.         -annotation "Name for the new emitter"
  631.         flEmitterName;
  632.     checkBoxGrp -l "Parent to Container" -label1 ""
  633.         -annotation "Parent emitter to container, or place at directly at center of container"
  634.         flEmitterParenting;
  635.  
  636.     separator;
  637.     createCreate3DFluidLayout( $parent );
  638.  
  639.     // Basic Emitter Attributes Layout
  640.     //
  641.     frameLayout -l "Basic Emitter Attributes"
  642.         -bv true -lv true -cll true -cl false -mh 4
  643.         flEmitterBasicFL;
  644.     columnLayout flEmitterBasicCL;
  645.  
  646.     // Emitter Types Option Menu
  647.     // 
  648.     optionMenuGrp -l "Emitter Type"
  649.         -cc ("dynFluidEmitterOptionChoice " + $parent)
  650.         -annotation "Select the emitter type: either omni-directional or volume"
  651.         flEmitterTypeOM;
  652.     menuItem -l "Omni" flEmitterOmniPoint;
  653.     menuItem -l "Volume" flEmitterVolume;
  654.  
  655.     floatSliderGrp -l "Density Rate (/Voxel/Sec)"
  656.         -ann "Density emission per voxel per second"
  657.         -field true 
  658.         -min 0 -max 500
  659.         -fmn 0 -fmx $dynMaxFloatField
  660.         -pre 3 -step 10
  661.         flEmitterDensityRate;
  662.  
  663.     floatSliderGrp -l "Heat Rate (/Voxel/Sec)"
  664.         -ann "Heat emission per voxel per second"
  665.         -field true 
  666.         -min 0 -max 500
  667.         -fmn 0 -fmx $dynMaxFloatField
  668.         -pre 3 -step 10
  669.         flEmitterHeatRate;
  670.  
  671.     floatSliderGrp -l "Fuel Rate (/Voxel/Sec)"
  672.         -ann "Fuel emission per voxel per second"
  673.         -field true 
  674.         -min 0 -max 500
  675.         -fmn 0 -fmx $dynMaxFloatField
  676.         -pre 3 -step 10
  677.         flEmitterFuelRate;
  678.  
  679.     floatSliderGrp -l "Fluid Dropoff"
  680.         -ann "Fluid dropoff within volume"
  681.         -field true 
  682.         -min 0 -max 10
  683.         -fmn 0 -fmx $dynMaxFloatField
  684.         -pre 3 -step .1
  685.         flEmitterFluidDropoff;
  686.  
  687.     optionMenuGrp -l "Cycle Emission"
  688.         -ann "Restart random stream for this emitter each frame or after some number of particles"
  689.         -cc ("dynFluidEmitterCycleOptionChoice " + $parent)
  690.        flEmitterCycleOM;
  691.     menuItem -l "None (timeRandom off)" flEmitterCycleNone;
  692.     menuItem -l "Frame (timeRandom on)" flEmitterCycleFrame;
  693.     // menuItem -l "By Particle Count" flEmitterCycleCount;
  694.  
  695.     intSliderGrp -l "Cycle Interval"
  696.         -ann "Number of frames/particles between restarts of random stream"
  697.         -field true 
  698.         -min 1 -max 100
  699.         -fmx $dynMaxFloatField
  700.         //-pre 3 -step 0.5
  701.         flEmitterCycleInterval;
  702.  
  703.     setParent ..; 
  704.     setParent ..; 
  705.  
  706.  
  707.     // Direction Layout
  708.     //
  709.     frameLayout -l "Distance Attributes"
  710.         -bv true -lv true -cll true -cl true -mh 4
  711.         flEmitterDirectionFL;
  712.     columnLayout flEmitterDirectionCL;
  713.  
  714.     floatSliderGrp -l "Max Distance"
  715.         -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
  716.         -field true 
  717.         -min 0 -max 10
  718.         -fmn 0 -fmx $dynMaxFloatField
  719.         -pre 3 -step 0.5
  720.         -cc flEmitterMaxDistCB
  721.         flEmitterMaxDistance;
  722.  
  723.     floatSliderGrp -l "Min Distance"
  724.         -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
  725.         -field true 
  726.         -min 0 -max 10
  727.         -fmn 0 -fmx $dynMaxFloatField
  728.         -pre 3 -step 0.5
  729.         -cc flEmitterMinDistCB
  730.         flEmitterMinDistance;
  731.  
  732.     setParent ..;
  733.     setParent ..;
  734.  
  735.     // Volume Emitter Attributes Layout
  736.     //
  737.     int $collapse = 0;
  738.  
  739.     frameLayout -l "Volume Emitter Attributes"
  740.         -bv true -lv true -cll true -cl $collapse -mh 4
  741.         flEmitterVolumeFL;
  742.     columnLayout flEmitterVolumeCL;
  743.  
  744.     text -align left -l "Set emitter type to Volume to enable" flEmitterVolumeEnablePrompt;
  745.  
  746.     optionMenuGrp -l "Volume Shape"
  747.         -ann "Determines where particles are created (for volume type emitter, only)"
  748.         -cc ("setDimmingForVolumeFluidEmitterAttributes " + $parent)
  749.         flEmitterVolumeShapeOM;
  750.     menuItem -l "Cube" flEmitterCube;
  751.     menuItem -l "Sphere" flEmitterSphere;
  752.     menuItem -l "Cylinder" flEmitterCylinder;
  753.     menuItem -l "Cone" flEmitterCone;
  754.     menuItem -l "Torus" flEmitterTorus;
  755.  
  756.     floatSliderGrp -label "Volume Offset X"
  757.         -ann "Move volume away from actual emitter location"
  758.         -field true 
  759.         -min -10 -max 10
  760.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  761.         -pre 3 -step 0.5
  762.         flEmitterVolumeOffsetX;
  763.  
  764.     floatSliderGrp -label "Volume Offset Y"
  765.         -ann "Move volume away from actual emitter location"
  766.         -field true 
  767.         -min -10 -max 10
  768.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  769.         -pre 3 -step 0.5
  770.         flEmitterVolumeOffsetY;
  771.  
  772.     floatSliderGrp -label "Volume Offset Z"
  773.         -ann "Move volume away from actual emitter location"
  774.         -field true 
  775.         -min -10 -max 10
  776.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  777.         -pre 3 -step 0.5
  778.         flEmitterVolumeOffsetZ;
  779.  
  780.     floatSliderGrp -label "Volume Sweep"
  781.         -ann "Change extent of volume, as in modelling"
  782.         -field true 
  783.         -min 0 -max 360
  784.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  785.         -pre 3 -step 3.6
  786.         flEmitterVolumeSweep;
  787.  
  788.     floatSliderGrp -label "Section Radius"
  789.         -ann "Change size of torus volume, as in modelling"
  790.         -field true 
  791.         -min 0 -max 1.0
  792.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  793.         -pre 3 -step 0.1
  794.         flEmitterTorusSectionRadius;
  795.  
  796.     setParent ..; 
  797.     setParent ..; 
  798. }
  799.  
  800. global proc create2DFluidAndEmitterLayout( string $parent )
  801. {
  802.     global float $dynMaxFloatField;
  803.     global float $dynMinFloatField;
  804.  
  805.     setParent $parent;
  806.     
  807.     // Emitter Name Widget
  808.     //
  809.     textFieldGrp -l "Emitter Name"
  810.         -annotation "Name for the new emitter"
  811.         flEmitterName;
  812.  
  813.     checkBoxGrp -l "Parent to Container" -label1 ""
  814.         -annotation "Parent emitter to container, or place at directly at center of container"
  815.         flEmitterParenting;
  816.  
  817.     separator;
  818.     createCreate2DFluidLayout( $parent );
  819.  
  820.     // Basic Emitter Attributes Layout
  821.     //
  822.     frameLayout -l "Basic Emitter Attributes"
  823.         -bv true -lv true -cll true -cl false -mh 4
  824.         flEmitterBasicFL;
  825.     columnLayout flEmitterBasicCL;
  826.  
  827.     // Emitter Types Option Menu
  828.     // 
  829.     optionMenuGrp -l "Emitter Type"
  830.         -cc ("dynFluidEmitterOptionChoice " + $parent)
  831.         -annotation "Select the emitter type: either omni-directional or volume"
  832.         flEmitterTypeOM;
  833.     menuItem -l "Omni" flEmitterOmniPoint;
  834.     menuItem -l "Volume" flEmitterVolume;
  835.  
  836.     floatSliderGrp -l "Density Rate (/Voxel/Sec)"
  837.         -ann "Density emission per voxel per second"
  838.         -field true 
  839.         -min 0 -max 500
  840.         -fmn 0 -fmx $dynMaxFloatField
  841.         -pre 3 -step 10
  842.         flEmitterDensityRate;
  843.  
  844.     floatSliderGrp -l "Heat Rate (/Voxel/Sec)"
  845.         -ann "Heat emission per voxel per second"
  846.         -field true 
  847.         -min 0 -max 500
  848.         -fmn 0 -fmx $dynMaxFloatField
  849.         -pre 3 -step 10
  850.         flEmitterHeatRate;
  851.  
  852.     floatSliderGrp -l "Fuel Rate (/Voxel/Sec)"
  853.         -ann "Fuel emission per voxel per second"
  854.         -field true 
  855.         -min 0 -max 500
  856.         -fmn 0 -fmx $dynMaxFloatField
  857.         -pre 3 -step 10
  858.         flEmitterFuelRate;
  859.  
  860.     floatSliderGrp -l "Fluid Dropoff"
  861.         -ann "Fluid dropoff within volume"
  862.         -field true 
  863.         -min 0 -max 10
  864.         -fmn 0 -fmx $dynMaxFloatField
  865.         -pre 3 -step .1
  866.         flEmitterFluidDropoff;
  867.  
  868.     optionMenuGrp -l "Cycle Emission"
  869.         -ann "Restart random stream for this emitter each frame or after some number of particles"
  870.         -cc ("dynFluidEmitterCycleOptionChoice " + $parent)
  871.        flEmitterCycleOM;
  872.     menuItem -l "None (timeRandom off)" flEmitterCycleNone;
  873.     menuItem -l "Frame (timeRandom on)" flEmitterCycleFrame;
  874.     // menuItem -l "By Particle Count" flEmitterCycleCount;
  875.  
  876.     intSliderGrp -l "Cycle Interval"
  877.         -ann "Number of frames/particles between restarts of random stream"
  878.         -field true 
  879.         -min 1 -max 100
  880.         -fmx $dynMaxFloatField
  881.         //-pre 3 -step 0.5
  882.         flEmitterCycleInterval;
  883.  
  884.     setParent ..; 
  885.     setParent ..; 
  886.  
  887.  
  888.     // Direction Layout
  889.     //
  890.     frameLayout -l "Distance Attributes"
  891.         -bv true -lv true -cll true -cl true -mh 4
  892.         flEmitterDirectionFL;
  893.     columnLayout flEmitterDirectionCL;
  894.  
  895.     floatSliderGrp -l "Max Distance"
  896.         -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
  897.         -field true 
  898.         -min 0 -max 10
  899.         -fmn 0 -fmx $dynMaxFloatField
  900.         -pre 3 -step 0.5
  901.         -cc flEmitterMaxDistCB
  902.         flEmitterMaxDistance;
  903.  
  904.     floatSliderGrp -l "Min Distance"
  905.         -ann "Emit particles in a sphere bounded by this distance (does not apply to volumes)"
  906.         -field true 
  907.         -min 0 -max 10
  908.         -fmn 0 -fmx $dynMaxFloatField
  909.         -pre 3 -step 0.5
  910.         -cc flEmitterMinDistCB
  911.         flEmitterMinDistance;
  912.  
  913.     setParent ..;
  914.     setParent ..;
  915.  
  916.     // Volume Emitter Attributes Layout
  917.     //
  918.     int $collapse = 0;
  919.  
  920.     frameLayout -l "Volume Emitter Attributes"
  921.         -bv true -lv true -cll true -cl $collapse -mh 4
  922.         flEmitterVolumeFL;
  923.     columnLayout flEmitterVolumeCL;
  924.  
  925.     text -align left -l "Set emitter type to Volume to enable" flEmitterVolumeEnablePrompt;
  926.  
  927.     optionMenuGrp -l "Volume Shape"
  928.         -ann "Determines where particles are created (for volume type emitter, only)"
  929.         -cc ("setDimmingForVolumeFluidEmitterAttributes " + $parent)
  930.         flEmitterVolumeShapeOM;
  931.     menuItem -l "Cube" flEmitterCube;
  932.     menuItem -l "Sphere" flEmitterSphere;
  933.     menuItem -l "Cylinder" flEmitterCylinder;
  934.     menuItem -l "Cone" flEmitterCone;
  935.     menuItem -l "Torus" flEmitterTorus;
  936.  
  937.     floatSliderGrp -label "Volume Offset X"
  938.         -ann "Move volume away from actual emitter location"
  939.         -field true 
  940.         -min -10 -max 10
  941.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  942.         -pre 3 -step 0.5
  943.         flEmitterVolumeOffsetX;
  944.  
  945.     floatSliderGrp -label "Volume Offset Y"
  946.         -ann "Move volume away from actual emitter location"
  947.         -field true 
  948.         -min -10 -max 10
  949.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  950.         -pre 3 -step 0.5
  951.         flEmitterVolumeOffsetY;
  952.  
  953.     floatSliderGrp -label "Volume Offset Z"
  954.         -ann "Move volume away from actual emitter location"
  955.         -field true 
  956.         -min -10 -max 10
  957.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  958.         -pre 3 -step 0.5
  959.         flEmitterVolumeOffsetZ;
  960.  
  961.     floatSliderGrp -label "Volume Sweep"
  962.         -ann "Change extent of volume, as in modelling"
  963.         -field true 
  964.         -min 0 -max 360
  965.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  966.         -pre 3 -step 3.6
  967.         flEmitterVolumeSweep;
  968.  
  969.     floatSliderGrp -label "Section Radius"
  970.         -ann "Change size of torus volume, as in modelling"
  971.         -field true 
  972.         -min 0 -max 1.0
  973.         -fmn $dynMinFloatField -fmx $dynMaxFloatField
  974.         -pre 3 -step 0.1
  975.         flEmitterTorusSectionRadius;
  976.  
  977.     setParent ..; 
  978.     setParent ..; 
  979. }
  980.  
  981.